The present invention relates to estimating and compensating for carrier frequency offset (CFO) and sampling clock offset (SCO) in a communication system.
Orthogonal frequency division multiplexing (OFDM) is a method of encoding information onto carrier signals. OFDM is being employed increasingly in wireless communication systems such as wireless local area networks (WLAN) and cellular communications systems. In an OFDM system, information in the form of data symbols is encoded onto multiple frequency division multiplexed carrier signals. A cyclic prefix can be appended to the symbols to serve as a guard interval against inter-symbol interference and to assist in frequency domain processing of the received signals. Recovery of the transmitted data at a receiver involves demodulating the carrier signals to baseband and digitally sampling the demodulated baseband signals.
Carrier frequency offset (CFO) refers to a difference between a frequency used to modulate information onto a carrier signal at a transmitter and a frequency used to demodulate the signal at a receiver. Typically, these frequencies are generated by different crystal oscillators located at both the transmitter and the receiver. While the oscillators may operate at similar frequencies, they are generally not perfectly matched. Sampling clock offset (SCO) refers to an offset between a time at which a sample is obtained and an optimal sampling point. While individual samples may not be adversely affected by a small sampling offset, the effects of SCO tend to be cumulative such that sampling errors can eventually occur. Therefore, in order to accurately and reliably recover encoded information, it is important to appropriately account for both CFO and SCO.
Frequency-domain CFO and SCO estimation methods typically performed in OFDM systems involve calculation of the inverse tangent (a tan). Moreover, methods performed for CFO and SCO compensation typically involve calculation of the exponential function (exp). These calculations are of high computational complexity, and are performed for each received symbol. As such, they tend to increase receiver system complexity and introduce undesirable latency in processing the received signal.